home *** CD-ROM | disk | FTP | other *** search
- Subject: v09i054: Terminal emulator for X window system, Part01/07
- Newsgroups: mod.sources
- Approved: rs@mirror.TMC.COM
-
- Submitted by: edmoy@opal.Berkeley.EDU
- Mod.sources: Volume 9, Issue 54
- Archive-name: xterm6.6b/Part01
-
- This is part 1/7 of version 6.6B of xterm, a modified version of the X
- version 10, release 4 xterm. It has all the bug fixes I know of and has
- some other clean up done. Enjoy.
-
- Edward Moy
- Academic Computing Services
- University of California
- Berkeley, CA 94720
-
- edmoy@opal.Berkeley.EDU
- ucbvax!opal!edmoy
- #! /bin/sh
- # This is a shell archive, meaning:
- # 1. Remove everything above the #! /bin/sh line.
- # 2. Save the resulting text in a file.
- # 3. Execute the file with /bin/sh (not csh) to create the files:
- # CHANGES
- # CHANGES.resize
- # CHANGES.termcap
- # ONELINE
- # README
- # Tekparse.h
- # VTparse.h
- # bottom.ic
- # button.ic
- # dark.ic
- # data.h
- # downline.ic
- # downpage.ic
- # error.h
- # gray.ic
- # hilite.ic
- # icon.ic
- # light.ic
- # ptyx.h
- # saveoff.ic
- # saveon.ic
- # scrollbar.h
- # tek_icon.ic
- # top.ic
- # upline.ic
- # uppage.ic
- # wait.ic
- # waitmask.ic
- if test -f CHANGES
- then
- echo shar: will not overwrite existing file "'CHANGES'"
- else
- echo 'x - CHANGES'
- cat << \RAZZLE!DAZZLE > CHANGES
- VERSION X10/6.6B
- ------- --------
-
- General
- -------
-
- vt102 and Tektronix 4015 emulation in separate windows, each with its own
- mode menu (control middle button).
-
- Switching between each mode can be done via the menus, or with escape
- sequences:
- vt102 -- \E[?38h --> tek
- tek -- \E\003 --> vt102
-
- The windows hilite themselves when the mouse is with either window or when
- one of these is the focus window. The windows unhilite when the mouse moves
- out of the window and neither is the focus window. Hiliting appears as
- windows with solid color borders and solid block cursors. Unhiliting appears
- as windows with "grayed" borders and a rectangle cursor.
-
- The parser for both modes is table-driven and is much more efficient than the
- original parsers.
-
- If UTMP is define in the Makefile, then each instance of xterm makes an entry
- in /etc/utmp and thus appears with the "who" command.
-
- If both windows are visible and one is iconified, both disappear. Deiconifing
- causes both to appear again.
-
- If the initial mode is vt102, /etc/termcap is searched, in order, for the
- following termcaps, until one is found:
- xterms, xterm, vt102, vt100, ansi, dumb
- If the vt102 window happens to be 80x24, then xterms is added to the begining
- of the list. If the initial mode is tek, the termcaps searched for are:
- tek4015, tek4014, tek4013, tek4010, dumb
-
- The window size is passed to the operating system via TIOCSWINSZ (4.3) or
- TIOCSSIZE (sun). A SIGWINCH siganl is sent if the vt102 window is resized.
-
- For login windows, menus are disabled until a user has successfully login.
-
- A new menu (xterm) has been added (control left button) that gives the version
- number. The menu allows titlebars to be displayed (see below), the windows
- redrawn, or for various signals to be sent to the process group of the command
- xterm is executing. The signals include SIGCONT, SIGTSTP,SIGHUP, SIGINT,
- SIGTERM and SIGKILL.
-
- Titlebars for the window can be turned on with .Xdefaults
- "xterm.TitleBar on", with command line option -tb or via the xterm menu.
-
- The titlebar font is, by default, vtsingle. The font can be changed with
- .Xdefaults "xterm.TitleFont helv12b" for helv12b font or via command line
- option -ft helv12b.
-
- The titlebar look like Macintosh titlebars. A series of strips appears when the
- window is hilited, and are gone when unhilited.
-
- Both windows are visible and the mouse cursor is in either window, only the
- active window is hilited (before both windows were hilited).
-
- A time delay has been added for window hiliting/unhiliting so that the mouse
- passing momentarily through a window will not cause it to hilite and then
- unhilite when autoraise is on.
-
- Automatic raising of windows has been added, so that the window is automatically
- raised (after the time delay) when the mouse enters a window. The mode is
- turned on via .Xdefaults "xterm.AutoRaise on", via command line option -ar
- or via the xterm menu. This is a dubious feature.
-
- Visual bell mode can be turned on via .Xdefaults "xterm.VisualBell on", via
- command line option -vb and from the xterm menu.
-
- If the NOWINDOWMENU is not defined, then
- Control right button activates a windows menu that lists the visible (named)
- windows in back to front order reading down. Selecting a window name cause
- that window to be raised to the top (useful for getting to a buried
- window). This feature does not belong in xterm, and will be
- completely removed in V11 of X, where window managers can be more intellegent.
-
- The tek window has the same name as the vt102 window, but with " (Tek)"
- appended (before they were the same).
-
- During startup, xterm tries to create unique window names so that the
- windows menu will not contain ambiguous windows. It does this by look
- through the list of windows and if a name exist that is the same, " #N"
- will be appended to make it unique (N is a number two or greater).
-
- Some reorganization of the code and data has been done to put more data in
- the text segment so many xterm processes can share the (read-only) data, rather
- than having n copies in core.
-
- There are several bug fixes including better sun compatibility and a problem
- in the vt102 parse table.
-
- With some mods to libX.a, xterm solves a problem of running xterm on a remote
- host with a local window, when the remote host uses a different keymap (like
- running on a remote microvax on a sun). If the environment variable KEYBD
- is set or the command line option "-kb name" is given, then a keymap file
- with the given name is used, rather than the default of your .Xkeymap file.
- Standard names for keymap files is yet to be made. (This option is turned on
- via defining KEYBD in the Makefile.)
-
- Xterm now always creates its own icon(s), which includes the window's name.
- The -i option now means startup showing the icon. The option #[+-]x[+-]y
- means to position the icon there instead of centered within the window.
- The bitmap within the icon show the current active mode (either vt102 or
- tek). The icon reverse-videos with the windows.
-
- By default, the icons are a miniture window and the window title. The icon
- can also be miniture versions of the window. This is activated with .Xdefaults
- "xterm.ActiveIcon on", -ai from the command line, or from the xterm menu.
-
- The active icon does not normally allow input. A menu selection in the xterm
- menu will allow input to the icon.
-
- When the mouse is in the stripped area of the titlebar, you can get any
- of the three menus without pressing the control key. Clicking in the
- actual title iconifies. Clicking in an icon deiconifies it.
-
- Many mode option on the command line allow a '+' instead of '-' to indicate
- turning off the indicated mode.
-
- Color support has been improved, so that an unselected cursor is an empty
- rectangle with the foreground color, and the selected cursor is a filled
- rectangle with the cursor color.
-
- A better and faster menu package has been added that supports (Mac-like)
- checkmarks and dimmed (disabled and grayed) item, as well as line separator
- items.
-
- To conserve on resources, the unhilited border of the window(s) is now
- always a gray pixmap, which is shared by the menu package.
-
- Logging capability has been added, in which all characters sent to the
- xterm window are recorded. The mode is turned on by using .Xdefaults option
- "xterm.Logging on", -l on the command line, from the xterm menu or the
- escape sequence \E[?46h in vt102 mode. Logging is turned off through the
- xterm menu or \E[?46l in vt102 mode. The default log file is XtermLog.XXXXX
- (XXXXX is the process id of xterm) and is in the initial directory in which
- xterm was started (the home directory for login xterms). Each logging start
- appends to the end of the loggin file, and each logging stop closes the file.
-
- An alternate logging file may be given with .Xdefaults "xterm.LogFile file"
- (file is the alternate filename) or with command line option "-lf file".
- If the first character of the logfile name is `|', then the rest of the
- name passed to the shell for execution and a pipe is created to the process.
- In this case, each time the log is started, a new process is created and
- when logging is turned off, the pipe is closed. Thus, a logfile name of
- "| lpr", will send text to the line printer each time logging is turned off.
-
- Certain modes may be inhibited by specifying in the .Xdefaults file. A
- change to the initial logging mode may be prevented with "xterm.LogInhibit on",
- which will prevent changes to logging from the menu or from escape sequences.
- "xterm.SignalInhibit on" disables the xterm menu signal sending (Continue is
- still allowed). "xterm.TekInhibit on" prevents entering into Tektronix mode.
-
- As per edjames@eros, xterm sets the environment variable WINDOWID, which
- contains the Window id of the initial window (normally vt102, but could be
- the tek window if the -t option were specified). This "feature" is
- bogus, as it may not always give you all information you need to
- access a window.
-
- The title in the title bar may be changed with the \E]0;new title\007 escape
- sequence. Any non-printing character terminates the title string. The
- windows and icons are also renamed, and the icons are resized to fit the
- new title.
-
- The log file may be changed with the \E]46;new log file\007 escape sequence.
- If the log file name is empty, the default log file name is used.
-
- In visual bell mode, the icons now flash on receipt of a control-G.
-
- If xterm is iconified and new input comes in, a box is drawn around the
- icon title.
-
- The bitmap used for the icons is now user definable. The VT102 bitmap may be
- set with .Xdefaults "xterm.IconBitmap file" or with "-ib file" on the command
- line. The Tek bitmap may be set with .Xdefaults "xterm.TekIconBitmap file"
- or with "-it file" on the command line. These files are assumed to be
- bitmap(1) format files. If only one bitmap file is specified, it is used for
- both modes. If both are specified as null file names, then no bitmap is drawn.
-
- Normally, the title text of the icon is displayed to the right of the
- bitmap. The text may be displayed under the bitmap by using .Xdefaults
- "xterm.TextUnderIcon on" or with -ti on the command line.
-
- The mouse may be automatically warpped to the xterm window when it is
- deiconified by using .Xdefaults "xterm.DeiconifyWarp on" or using -dw on
- the command line. This is also of questionable merit.
-
- The standard error output used by xterm is now improved. Normally it will
- be the same standard error when xterm is started. For login xterms
- (-L specified) then the standard error will be to /dev/console.
-
- X error events are now intercepted so that xterm may cleanup before exiting
- (like resetting the tty modes and clearing the /etc/utmp entry).
-
- VT102
- -----
-
- vt102 emulation is much more complete than the original xterm.
-
- Underlined characters is now supported.
-
- A partial sun tty emulation is provided (x, y, w, h, c, r are numbers):
- \E[3;x;yt move window to (x, y)
- \E[4;w;ht resize window - width w, height h pixels
- \E[5t raise window
- \E[6t lower window
- \E[7t redisplay window
- \E[8;r;ct resize window - r rows, c columns
- \E[13t send window position \E[3;x;yt
- \E[14t send window size (pixel) \E[4;w;ht
- \E[18t send window size (rows and columns) \E[8;r;ct
-
- The text for reexcuting (shift-left button), copy (shift-middle button-drag)
- and paste (shift-right button) is now hilited by reverse video.
-
- Pasting text that was originally displayed as vt102 graphic characters now
- returns the original ascii character (and not the internal representation).
-
- Text that is scrolled off the top of the window can be saved and is accessable
- via a scrollbar. By default, saving is off and can be turned changed via
- escape sequence \E[?43h (on) and \E[43l (off) or from the mode menu. The
- scrollbar is normally off, but may be made visible with .Xdefault option
- "xterm.ScrollBar on" or command line option -sb. The scrollbar state can
- be changed via the mode menu or escape sequences \E[?42h (on) and \E[?42l
- (off).
-
- The scrollbar is composed of three parts (from top down), the scroll button,
- the save button and the scroll region. The scroll button changes what is
- displayed in the window. Left button pressed in the scroll button causes
- the window to move one line up (the text scrolls one line down). The right
- button moves one line down. Shift left button moves one screenful up and shift
- right button moves one screenful down. Control left button moves to the top
- of the buffer, control right button moves to the bottom. The visible area
- is shown graphically in the scroll region, with the (usually) dark region
- that part of the buffer that appears in the window. Clicking the left or
- right button in the scroll region cause the visible region to be position
- with its top at the mouse position. The save button shows the state of saving
- or not saving lines. By default, any input or output will return the
- screen to the bottom.
-
- The default maximum number of lines saved off the top is 64, but can be
- specified in .Xdefaults as "xterm.SaveLines 100" for 100 lines, or as
- a command line option "-sl 100".
-
- The lines saved can be cleared via the mode menu.
-
- A margin bell can be turned on via .Xdefaults "xterm.MarginBell on", command
- line option -mb or mode menu. The default number of columns from the right
- margin is 10 and is settable via .Xdefaults "xterm.NMarginBell 15" for 15
- columns, or via command line option -nb 15. The mode may be changed by escape
- sequence \E[?44h (on) and \E[?44l (off).
-
- To emulate the vt102 switching between 80 and 132 columns, the mode may
- be turned on via .Xdefaults "xterm.C132 on", via command line option -132 or
- via the mode menu. The mode may be changed by escape sequence \E[?40h (on)
- and \E[?40l (off).
-
- A mode that fixes a bug in curses (e.g. when using "more" on lines that have
- lines that print on the last column of the line and the next line begins with
- a tab) can be turned on .Xdefaults "xterm.Curses on", command line option
- -cu or via the mode menu. The mode may be changed by escape sequence
- \E[?41h (on) and \E[?41l (off).
-
- Auto linefeed mode and auto repeat are supported.
-
- The mode menu is now more descriptive.
-
- Most Dec Private mode settings can be save away internally using \E[?ns,
- where n is the same number to set or reset the Dec Private mode. The
- mode can be restored using \E[?nr. This can be used in termcap for vi, for
- example, to turn off saving of lines, but restore whatever the original
- state was on exit.
-
- An optional status line (in reverse video) has been added to the bottom of
- the vt102 window. The following escape sequences work on the status line:
- \E[?S show status line
- \E[?H hide status line
- \E[?nT enter status line, at column n
- \E[?F return to the position before entry into status line
- \E[?E erase status line
- Also, the status line may be turned on via .Xdefaults "xterm.StatusLine on",
- the -st commandline option or from the mode menu.
-
- Reverse wraparound can be enabled with .Xdefaults "xterm.ReverseWrap on", via
- command line option -rw or from the mode menu. Also the escape sequences
- \E[?45h turns on reverse wraparound and \E[?45l turns it off. Reverse
- wraparound only works when autowrap is also on and is useful, for instance,
- when entering a long line that wraps to the shell and needing to erase
- backwards to correct it.
-
- The scrollbar code has been modified to use fewer pixmaps, and should work
- better on the GPX.
-
- An alternate screen buffer is now supported. Entry into the alternate screen
- buffer with \E[?47h will automatically inhibit lines from being saved off the
- top of the window and \E[?47l returns to the normal screen buffer and restores
- the original state of line saving. The new termcap entry causes vi to use
- the alternate screen buffer on entry and clears the alternate buffer before
- returning to the regular buffer.
-
- If the normal font is specified and the bold font isn't, then the bold font
- is automatically created be overstring, ala dcmartin@ingres.
-
- The scrollbar now has its own menu, available when the middle button is pressed
- anywhere in the scrollbar. The menu entries originally in the mode menu having
- to do with the scrollbar have been moved to the scrollbar menu (except the
- Scrollbar entry, to initially display the scrollbar).
-
- The scroll bar may be repositioned automatically at the bottom when input comes
- in by using .Xdefaults "xterm.ScrollInput on", using -si on the command line
- or via the scrollbar menu.
-
- The scroll bar may be repositioned automatically at the bottom when a key is
- pressed by using .Xdefaults "xterm.ScrollKey on", using -sk on the command line
- or via the scrollbar menu.
-
- Normally the status line is displayed in reverse video. A normal-video status
- line may be obtained by using .Xdefaults "xterm.StatusNormal on", with
- -sn on the command line or via the mode menu, or may be controlled with the
- escape sequences \E[?48h (on) and \E[?48l (off). In normal video mode, a
- box is still drawn around the status line.
-
- Page scroll mode may be activated by using .Xdefaults "xterm.PageScroll on",
- using -ps on the command line or via the mode menu, or may be control by the
- escape sequences \E[?49h (on) and \E[?49l (off). In page scroll mode,
- after a page of input has been displayed, further scrolling is disabled
- and the text cursor is hidden. Typing a carriage return allows another
- line to be scrolled (the return is discarded). Pressing the space bar (or any
- other printable character) causes another page to be scrolled (the character
- is discarded). Typing a control character scrolls another page, but the
- control character is sent (e.g., your interrupt character).
-
- A page in page scroll mode is defined to be the number of lines in the current
- scrolling region, minus the page overlap number. The page overlap is one by
- default, but may be set by .Xdefaults "xterm.PageOverlap 3" or via the
- "-po 3" command line option.
-
- Page scroll mode is automatically inhibited when using the alternate screen.
-
- The icon windows are now named, with " (icon)" appended. Thus, iconified
- xterms now show up in the windows menu.
-
- Tektronix
- ---------
-
- Tek mode is much more complete than the original.
-
- Tek standard two column mode is supported.
-
- Four different character sizes are supported and can be changed via the
- tek menu.
-
- 5 line types are supported (solid, dotted, short dashed, long dashed and
- dot dashed).
-
- All of the tek character sequences are stored and can be saved into a file
- via the standard COPY escape sequence or from the mode menu. The file created
- is named COPYyy-mm-dd.hh:mm:ss (COPY plus the date and time) and is placed
- in the initial directory in which xterm was started. Login xterms use the
- users home directory.
-
- When the tek window is being refreshed, the mouse cursor shows a clock.
-
- The X geometry of the Tek window can be given on the command line (independently
- of the VT102 window) by using %geometry (`%' rather than `=').
-
- In GIN mode, pressing a key will send the key and the mouse coordinates of
- the cross cursor, similar to standard Tek GIN mode. Pressing a mouse button
- instead will send the character `l', `m' or `r' depending on whether the
- left, middle or right button was pressed, respectively. If the shift key was
- down when the button was pressed, the corresponding upper case character is
- sent. To distinquish a button press from a key press, the high bit of the
- character is set, but this is only useful if the tty mode is set to RAW to
- pass all 8 bits.
- RAZZLE!DAZZLE
- fi # End CHANGES
- if test -f CHANGES.resize
- then
- echo shar: will not overwrite existing file "'CHANGES.resize'"
- else
- echo 'x - CHANGES.resize'
- cat << \RAZZLE!DAZZLE > CHANGES.resize
- resize version X10/6.6
- ------ ------- -------
-
- This version of resize uses the standard VT102 escape sequences as before.
- In addition, there is a -s flag that will use the Sun tty emulation escape
- sequences and allow the window to adjusted from the command line. For example,
- to change the window size to 35 rows by 80 columns, one can use:
-
- % set noglob; eval `resize -s 35 80`
-
- The TERMCAP environment variable will be adjusted accordingly.
-
- If a link is made from resize to sunsize, sunsize will use the sun emulation
- exclusively (and should work under Suntools, also).
-
- Before, resize could send an escape sequence and fscanf could returned before
- xterm sends its escape sequence, thus failing. Now the read is synchronized.
-
- If no escape sequence is received from the terminal within 10 seconds, resize
- terminates.
- RAZZLE!DAZZLE
- fi # End CHANGES.resize
- if test -f CHANGES.termcap
- then
- echo shar: will not overwrite existing file "'CHANGES.termcap'"
- else
- echo 'x - CHANGES.termcap'
- cat << \RAZZLE!DAZZLE > CHANGES.termcap
- termcap version X10/6.4
- ------- ------- -------
-
- This termcap contains the necessary modifications to access the status line
- (by sysline, for instance) and to activate the alternate screen buffer when
- entering vi. Multiple insert and delete functions have been added.
- RAZZLE!DAZZLE
- fi # End CHANGES.termcap
- if test -f ONELINE
- then
- echo shar: will not overwrite existing file "'ONELINE'"
- else
- echo 'x - ONELINE'
- cat << \RAZZLE!DAZZLE > ONELINE
- This is version X10/6.4 of xterm, the VT102/Tektronix 4014 terminal emulator.
- RAZZLE!DAZZLE
- fi # End ONELINE
- if test -f README
- then
- echo shar: will not overwrite existing file "'README'"
- else
- echo 'x - README'
- cat << \RAZZLE!DAZZLE > README
- This is version X10/6.6 of xterm, the VT102/Tektronix 4014 terminal emulator.
- This program has been greatly changed and enhanced by:
-
- Edward Moy
- Academic Computing Services
- University of California, Berkeley
-
- edmoy@opal.Berkeley.EDU
- ucbvax!opal!edmoy
-
- Notable features in 6.6 include scrollbars, titlebars, new menus and a new
- menu package, auto-raising of windows, visual bell, new icons, logging
- capability, status line, reverse wraparound and an alternate screen buffer.
- A more detailed description can be found in the CHANGES file.
-
- Included here are the pre-compiled executables of xterm (and resize) for
- the MicroVax (under Ultrix) and for Sun-3s.
-
- NOTE: I am keeping the official SCCS directory on my MicroVax. Any changes
- made here may not appear on later releases unless you tell me about them
- and I feel they are useful (I'm fairly reasonable).
- RAZZLE!DAZZLE
- fi # End README
- if test -f Tekparse.h
- then
- echo shar: will not overwrite existing file "'Tekparse.h'"
- else
- echo 'x - Tekparse.h'
- cat << \RAZZLE!DAZZLE > Tekparse.h
- /*
- * $Source: /u1/X/xterm/RCS/Tekparse.h,v $
- * $Header: Tekparse.h,v 10.100 86/12/01 14:39:07 jg Rel $
- */
-
- /* @(#)Tekparse.h X10/6.6B 12/26/86 */
- #define CASE_REPORT 0
- #define CASE_VT_MODE (CASE_REPORT + 1)
- #define CASE_SPT_STATE (CASE_VT_MODE + 1)
- #define CASE_GIN (CASE_SPT_STATE + 1)
- #define CASE_BEL (CASE_GIN + 1)
- #define CASE_BS (CASE_BEL + 1)
- #define CASE_PT_STATE (CASE_BS + 1)
- #define CASE_PLT_STATE (CASE_PT_STATE + 1)
- #define CASE_TAB (CASE_PLT_STATE + 1)
- #define CASE_IPL_STATE (CASE_TAB + 1)
- #define CASE_ALP_STATE (CASE_IPL_STATE + 1)
- #define CASE_UP (CASE_ALP_STATE + 1)
- #define CASE_COPY (CASE_UP + 1)
- #define CASE_PAGE (CASE_COPY + 1)
- #define CASE_BES_STATE (CASE_PAGE + 1)
- #define CASE_BYP_STATE (CASE_BES_STATE + 1)
- #define CASE_IGNORE (CASE_BYP_STATE + 1)
- #define CASE_ASCII (CASE_IGNORE + 1)
- #define CASE_APL (CASE_ASCII + 1)
- #define CASE_CHAR_SIZE (CASE_APL + 1)
- #define CASE_BEAM_VEC (CASE_CHAR_SIZE + 1)
- #define CASE_CURSTATE (CASE_BEAM_VEC + 1)
- #define CASE_PENUP (CASE_CURSTATE + 1)
- #define CASE_PENDOWN (CASE_PENUP + 1)
- #define CASE_IPL_POINT (CASE_PENDOWN + 1)
- #define CASE_PLT_VEC (CASE_IPL_POINT + 1)
- #define CASE_PT_POINT (CASE_PLT_VEC + 1)
- #define CASE_SPT_POINT (CASE_PT_POINT + 1)
- #define CASE_CR (CASE_SPT_POINT + 1)
- #define CASE_ESC_STATE (CASE_CR + 1)
- #define CASE_LF (CASE_ESC_STATE + 1)
- #define CASE_SP (CASE_LF + 1)
- #define CASE_PRINT (CASE_SP + 1)
- #define CASE_OSC (CASE_PRINT + 1)
- RAZZLE!DAZZLE
- fi # End Tekparse.h
- if test -f VTparse.h
- then
- echo shar: will not overwrite existing file "'VTparse.h'"
- else
- echo 'x - VTparse.h'
- cat << \RAZZLE!DAZZLE > VTparse.h
- /*
- * $Source: /u1/X/xterm/RCS/VTparse.h,v $
- * $Header: VTparse.h,v 10.101 86/12/01 21:49:38 jg Rel $
- */
-
- /* @(#)VTparse.h X10/6.6B 12/26/86 */
- #define CASE_GROUND_STATE 0
- #define CASE_IGNORE_STATE (CASE_GROUND_STATE+1)
- #define CASE_IGNORE_ESC (CASE_IGNORE_STATE+1)
- #define CASE_IGNORE (CASE_IGNORE_ESC+1)
- #define CASE_BELL (CASE_IGNORE+1)
- #define CASE_BS (CASE_BELL+1)
- #define CASE_CR (CASE_BS+1)
- #define CASE_ESC (CASE_CR+1)
- #define CASE_VMOT (CASE_ESC+1)
- #define CASE_TAB (CASE_VMOT+1)
- #define CASE_SI (CASE_TAB+1)
- #define CASE_SO (CASE_SI+1)
- #define CASE_SCR_STATE (CASE_SO+1)
- #define CASE_SCS0_STATE (CASE_SCR_STATE+1)
- #define CASE_SCS1_STATE (CASE_SCS0_STATE+1)
- #define CASE_SCS2_STATE (CASE_SCS1_STATE+1)
- #define CASE_SCS3_STATE (CASE_SCS2_STATE+1)
- #define CASE_ESC_IGNORE (CASE_SCS3_STATE+1)
- #define CASE_ESC_DIGIT (CASE_ESC_IGNORE+1)
- #define CASE_ESC_SEMI (CASE_ESC_DIGIT+1)
- #define CASE_DEC_STATE (CASE_ESC_SEMI+1)
- #define CASE_ICH (CASE_DEC_STATE+1)
- #define CASE_CUU (CASE_ICH+1)
- #define CASE_CUD (CASE_CUU+1)
- #define CASE_CUF (CASE_CUD+1)
- #define CASE_CUB (CASE_CUF+1)
- #define CASE_CUP (CASE_CUB+1)
- #define CASE_ED (CASE_CUP+1)
- #define CASE_EL (CASE_ED+1)
- #define CASE_IL (CASE_EL+1)
- #define CASE_DL (CASE_IL+1)
- #define CASE_DCH (CASE_DL+1)
- #define CASE_DA1 (CASE_DCH+1)
- #define CASE_TBC (CASE_DA1+1)
- #define CASE_SET (CASE_TBC+1)
- #define CASE_RST (CASE_SET+1)
- #define CASE_SGR (CASE_RST+1)
- #define CASE_CPR (CASE_SGR+1)
- #define CASE_DECSTBM (CASE_CPR+1)
- #define CASE_SUN_EMU (CASE_DECSTBM+1)
- #define CASE_DECREQTPARM (CASE_SUN_EMU+1)
- #define CASE_DECSET (CASE_DECREQTPARM+1)
- #define CASE_DECRST (CASE_DECSET+1)
- #define CASE_HIDDEN (CASE_DECRST+1)
- #define CASE_DECALN (CASE_HIDDEN+1)
- #define CASE_GSETS (CASE_DECALN+1)
- #define CASE_DECSC (CASE_GSETS+1)
- #define CASE_DECRC (CASE_DECSC+1)
- #define CASE_DECKPAM (CASE_DECRC+1)
- #define CASE_DECKPNM (CASE_DECKPAM+1)
- #define CASE_IND (CASE_DECKPNM+1)
- #define CASE_NEL (CASE_IND+1)
- #define CASE_HTS (CASE_NEL+1)
- #define CASE_RI (CASE_HTS+1)
- #define CASE_SS2 (CASE_RI+1)
- #define CASE_SS3 (CASE_SS2+1)
- #define CASE_CSI_STATE (CASE_SS3+1)
- #define CASE_OSC (CASE_CSI_STATE+1)
- #define CASE_RIS (CASE_OSC+1)
- #define CASE_LS2 (CASE_RIS+1)
- #define CASE_LS3 (CASE_LS2+1)
- #define CASE_LS3R (CASE_LS3+1)
- #define CASE_LS2R (CASE_LS3R+1)
- #define CASE_LS1R (CASE_LS2R+1)
- #define CASE_PRINT (CASE_LS1R+1)
- #define CASE_TO_STATUS (CASE_PRINT+1)
- #define CASE_FROM_STATUS (CASE_TO_STATUS+1)
- #define CASE_SHOW_STATUS (CASE_FROM_STATUS+1)
- #define CASE_HIDE_STATUS (CASE_SHOW_STATUS+1)
- #define CASE_ERASE_STATUS (CASE_HIDE_STATUS+1)
- #define CASE_XTERM_SAVE (CASE_ERASE_STATUS+1)
- #define CASE_XTERM_RESTORE (CASE_XTERM_SAVE+1)
- RAZZLE!DAZZLE
- fi # End VTparse.h
- if test -f bottom.ic
- then
- echo shar: will not overwrite existing file "'bottom.ic'"
- else
- echo 'x - bottom.ic'
- cat << \RAZZLE!DAZZLE > bottom.ic
- /* @(#)bottom.ic X10/6.6B 12/26/86 */
- #define bottom_width 19
- #define bottom_height 19
- static short bottom_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x8008, 0x0000,
- 0x8008, 0x0000, 0x8008, 0x0000,
- 0x8008, 0x0000, 0x8008, 0x0000,
- 0x8708, 0x0000, 0x8708, 0x0000,
- 0x9fc8, 0x0000, 0x8f88, 0x0000,
- 0x8708, 0x0000, 0x8208, 0x0000,
- 0xfff8, 0x0000, 0xfff8, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End bottom.ic
- if test -f button.ic
- then
- echo shar: will not overwrite existing file "'button.ic'"
- else
- echo 'x - button.ic'
- cat << \RAZZLE!DAZZLE > button.ic
- /* @(#)button.ic X10/6.6B 12/26/86 */
- #define button_width 19
- #define button_height 19
- static short button_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0200, 0x0000,
- 0x0700, 0x0000, 0x0f80, 0x0000,
- 0x1fc0, 0x0000, 0x0700, 0x0000,
- 0x0700, 0x0000, 0x0000, 0x0000,
- 0x0700, 0x0000, 0x0700, 0x0000,
- 0x1fc0, 0x0000, 0x0f80, 0x0000,
- 0x0700, 0x0000, 0x0200, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End button.ic
- if test -f dark.ic
- then
- echo shar: will not overwrite existing file "'dark.ic'"
- else
- echo 'x - dark.ic'
- cat << \RAZZLE!DAZZLE > dark.ic
- /* @(#)dark.ic X10/6.6B 12/26/86 */
- #define dark_width 16
- #define dark_height 16
- static short dark_bits[] = {
- 0xeeee, 0xffff, 0xbbbb, 0xffff,
- 0xeeee, 0xffff, 0xbbbb, 0xffff,
- 0xeeee, 0xffff, 0xbbbb, 0xffff,
- 0xeeee, 0xffff, 0xbbbb, 0xffff};
- RAZZLE!DAZZLE
- fi # End dark.ic
- if test -f data.h
- then
- echo shar: will not overwrite existing file "'data.h'"
- else
- echo 'x - data.h'
- cat << \RAZZLE!DAZZLE > data.h
- /*
- * $Source: /u1/X/xterm/RCS/data.h,v $
- * $Header: data.h,v 10.101 86/12/01 16:57:37 swick Rel $
- */
-
- /* @(#)data.h X10/6.6B 12/26/86 */
- extern Pixmap B_Pixmap;
- extern Pixmap W_Pixmap;
- extern TekLink *TekRefresh;
- extern Terminal term;
- extern Vertex T_box2[];
- extern Vertex T_box3[];
- extern Vertex T_boxlarge[];
- extern Vertex T_boxsmall[];
- extern Vertex T_boxicon[];
- extern Vertex VTbox[];
- extern Vertex icon_box[];
- extern T_fontsize Tfontsize[];
- extern Vertex status_box[];
- extern char *T_geometry;
- extern char *Tbptr;
- extern char *Tbuffer;
- extern char *Tpushb;
- extern char *Tpushback;
- extern char *back_color;
- extern char *bptr;
- extern char *curs_color;
- extern char *f_b;
- extern char *f_n;
- extern char *f_i;
- extern char *f_t;
- extern char *fore_color;
- extern char *geo_metry;
- extern char *icon_geom;
- extern char log_def_name[];
- extern char *mous_color;
- extern char *ptydev;
- extern char *ttydev;
- extern char *win_name;
- extern char *xterm_name;
- extern char buffer[];
- extern int B_Pixel;
- extern int L_flag;
- extern int Select_mask;
- extern int T_lastx;
- extern int T_lasty;
- extern int Tbcnt;
- extern int Ttoggled;
- extern int W_Pixel;
- extern int X_mask;
- extern int am_slave;
- extern int bcnt;
- #ifdef DEBUG
- extern int debug;
- #endif DEBUG
- extern int errno;
- extern int max_plus1;
- extern int n_marginbell;
- extern int pty_mask;
- extern int re_verse;
- extern int save_lines;
- extern int switchfb[];
- extern jmp_buf Tekend;
- extern jmp_buf VTend;
- RAZZLE!DAZZLE
- fi # End data.h
- if test -f downline.ic
- then
- echo shar: will not overwrite existing file "'downline.ic'"
- else
- echo 'x - downline.ic'
- cat << \RAZZLE!DAZZLE > downline.ic
- /* @(#)downline.ic X10/6.6B 12/26/86 */
- #define downline_width 19
- #define downline_height 19
- static short downline_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xef78, 0x0000, 0x0000, 0x0000,
- 0xdbb8, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0700, 0x0000,
- 0x0700, 0x0000, 0x1fc0, 0x0000,
- 0x0f80, 0x0000, 0x0700, 0x0000,
- 0x0200, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End downline.ic
- if test -f downpage.ic
- then
- echo shar: will not overwrite existing file "'downpage.ic'"
- else
- echo 'x - downpage.ic'
- cat << \RAZZLE!DAZZLE > downpage.ic
- /* @(#)downpage.ic X10/6.6B 12/26/86 */
- #define downpage_width 19
- #define downpage_height 19
- static short downpage_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x7f00, 0x0000,
- 0x4180, 0x0000, 0x4140, 0x0000,
- 0x4120, 0x0000, 0x41f0, 0x0000,
- 0x4710, 0x0000, 0x4710, 0x0000,
- 0x5fd0, 0x0000, 0x4f90, 0x0000,
- 0x4710, 0x0000, 0x4210, 0x0000,
- 0x4010, 0x0000, 0x7ff0, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End downpage.ic
- if test -f error.h
- then
- echo shar: will not overwrite existing file "'error.h'"
- else
- echo 'x - error.h'
- cat << \RAZZLE!DAZZLE > error.h
- /*
- * $Source: /u1/X/xterm/RCS/error.h,v $
- * $Header: error.h,v 10.100 86/12/01 14:39:28 jg Rel $
- */
-
- /* @(#)error.h X10/6.6B 12/26/86 */
- /* main.c */
- #define ERROR_KMALLOC 10 /* main: malloc() failed for keyboardtype */
- #define ERROR_FIONBIO 11 /* main: ioctl() failed on FIONBIO */
- #define ERROR_TSLOT 12 /* spawn: tslot() failed and getty */
- #define ERROR_TSLOT2 13 /* spawn: tslot() failed and am_slave */
- #define ERROR_OPDEVTTY 14 /* spawn: open() failed on /dev/tty */
- #define ERROR_TIOCGETP 15 /* spawn: ioctl() failed on TIOCGETP */
- #define ERROR_TIOCGETC 16 /* spawn: ioctl() failed on TIOCGETC */
- #define ERROR_TIOCGETD 17 /* spawn: ioctl() failed on TIOCGETD */
- #define ERROR_TIOCGLTC 18 /* spawn: ioctl() failed on TIOCGLTC */
- #define ERROR_TIOCLGET 19 /* spawn: ioctl() failed on TIOCLGET */
- #define ERROR_TIOCCONS 20 /* spawn: ioctl() failed on TIOCCONS */
- #define ERROR_OPDEVTTY2 21 /* spawn: second open() failed on /dev/tty */
- #define ERROR_NOTTY 22 /* spawn: ioctl() failed on TIOCNOTTY */
- #define ERROR_TIOCSETP 23 /* spawn: ioctl() failed on TIOCSETP */
- #define ERROR_TIOCSETC 24 /* spawn: ioctl() failed on TIOCSETC */
- #define ERROR_TIOCSETD 25 /* spawn: ioctl() failed on TIOCSETD */
- #define ERROR_TIOCSLTC 26 /* spawn: ioctl() failed on TIOCSLTC */
- #define ERROR_TIOCLSET 27 /* spawn: ioctl() failed on TIOCLSET */
- #define ERROR_TSLOT3 28 /* spawn: tslot() failed */
- #define ERROR_FORK 29 /* spawn: fork() failed */
- #define ERROR_EXEC 30 /* spawn: exec() failed */
- #define ERROR_OPDEVTTY3 31 /* spawn: third open() failed on /dev/tty */
- #define ERROR_PTYS 32 /* get_pty: not enough ptys */
- #define ERROR_NOX 33 /* get_terminal: can't connect to server */
- #define ERROR_NOX2 34 /* get_terminal: can't connect and getty */
- #define ERROR_TITLEFONT 35 /* get_terminal: can't open title font */
- #define ERROR_INIT 36 /* spawn: can't initialize window */
- #define ERROR_NOCO 37 /* resize: no `co' in termcap */
- #define ERROR_NOLI 38 /* resize: no `li' in termcap */
- #define ERROR_BORDER 39 /* get_terminal: can't make border tile */
- #define ERROR_BACK 40 /* get_terminal: can't make background tile */
- /* charproc.c */
- #define ERROR_SELECT 50 /* in_put: select() failed */
- #define ERROR_CRTITLE 51 /* VTTitleInit: XCreateWindow() failed */
- #define ERROR_HILITE 52 /* VTTitleInit: make_hilite() failed */
- #define ERROR_CRLFRG 53 /* VTTitleInit: XCreateWindows() failed */
- #define ERROR_VINIT 54 /* VTInit: can't initialize window */
- #define ERROR_RTMALLOC1 55 /* VTRetitle: malloc failed */
- #define ERROR_RTMALLOC2 56 /* VTRetitle: malloc failed */
- /* Tekproc.c */
- #define ERROR_TSELECT 60 /* Tinput: select() failed */
- #define ERROR_TCRTITLE 61 /* TekTitleInit: XCreateWindow() failed */
- #define ERROR_THILITE 62 /* TekTitleInit: make_hilite() failed */
- #define ERROR_TCRLFRG 63 /* TekTitleInit: XCreateWindows() failed */
- #define ERROR_TINIT 64 /* TekInit: can't initialize window */
- #define ERROR_TBACK 65 /* TekBackground: can't make background */
- #define ERROR_TWINNAME 66 /* TekInit: malloc failed */
- /* button.c */
- #define ERROR_BMALLOC 70 /* GetRestOfLine: malloc() failed */
- #define ERROR_BMALLOC2 71 /* SaltTextAway: malloc() failed */
- /* misc.c */
- #define ERROR_LOGEXEC 80 /* StartLog: exec() failed */
- #define ERROR_OPENBITMAP 81 /* IconInit: XReadBitmapFile returns zero */
- #define ERROR_SYNTAXBITMAP 82 /* IconInit: XReadBitmapFile returns negative */
- #define ERROR_XERROR 83 /* xerror: XError event */
- #define ERROR_XIOERROR 84 /* xioerror: X I/O error */
- #define ERROR_WINNAME 85 /* IconInit: malloc failed */
- /* screen.c */
- #define ERROR_SCALLOC 90 /* Alloc: calloc() failed on base */
- #define ERROR_SCALLOC2 91 /* Alloc: calloc() failed on rows */
- #define ERROR_SREALLOC 92 /* ScreenResize: realloc() failed on alt base */
- #define ERROR_SREALLOC2 93 /* ScreenResize: realloc() failed on alt rows */
- #define ERROR_SREALLOC3 94 /* ScreenResize: realloc() failed on rows */
- #define ERROR_SREALLOC4 95 /* ScreenResize: realloc() failed on rows */
- #define ERROR_RESIZE 96 /* ScreenResize: malloc() or realloc() failed */
- #define ERROR_RESIZE2 97 /* ScreenResize: malloc() or realloc() failed */
- #define ERROR_RESIZROW 98 /* ScreenResize: realloc() failed on alt char */
- #define ERROR_RESIZROW2 99 /* ScreenResize: realloc() failed on alt attr */
- #define ERROR_RESIZROW3 100 /* ScreenResize: realloc() failed on attr */
- #define ERROR_RESIZROW4 101 /* ScreenResize: realloc() failed on attr */
- /* scrollbar.c */
- #define ERROR_SBRALLOC 110 /* ScrollBarOn: realloc() failed on base */
- #define ERROR_SBRALLOC2 111 /* ScrollBarOn: realloc() failed on rows */
- /* util.c */
- #define ERROR_UBACK 120 /* ReverseVideo: can't make background */
- RAZZLE!DAZZLE
- fi # End error.h
- if test -f gray.ic
- then
- echo shar: will not overwrite existing file "'gray.ic'"
- else
- echo 'x - gray.ic'
- cat << \RAZZLE!DAZZLE > gray.ic
- /* @(#)gray.ic X10/6.6B 12/26/86 */
- #define gray_width 16
- #define gray_height 16
- static short gray_bits[] = {
- 0x5555, 0xaaaa, 0x5555, 0xaaaa,
- 0x5555, 0xaaaa, 0x5555, 0xaaaa,
- 0x5555, 0xaaaa, 0x5555, 0xaaaa,
- 0x5555, 0xaaaa, 0x5555, 0xaaaa};
- RAZZLE!DAZZLE
- fi # End gray.ic
- if test -f hilite.ic
- then
- echo shar: will not overwrite existing file "'hilite.ic'"
- else
- echo 'x - hilite.ic'
- cat << \RAZZLE!DAZZLE > hilite.ic
- /* @(#)hilite.ic X10/6.6B 12/26/86 */
- #define hilite_width 16
- #define hilite_height 16
- static short hilite_bits[] = {
- 0xffff, 0x0000, 0xffff, 0x0000,
- 0xffff, 0x0000, 0xffff, 0x0000,
- 0xffff, 0x0000, 0xffff, 0x0000,
- 0xffff, 0x0000, 0xffff, 0x0000};
- RAZZLE!DAZZLE
- fi # End hilite.ic
- if test -f icon.ic
- then
- echo shar: will not overwrite existing file "'icon.ic'"
- else
- echo 'x - icon.ic'
- cat << \RAZZLE!DAZZLE > icon.ic
- /* @(#)icon.ic X10/6.6B 12/26/86 */
- #define icon_width 32
- #define icon_height 24
- static short icon_bits[] = {
- 0xffff, 0xffff, 0x5001, 0x8005,
- 0xaffd, 0xbffa, 0x5001, 0x8005,
- 0xffff, 0xffff, 0x0001, 0xd800,
- 0xf33d, 0xa866, 0x0001, 0xf800,
- 0x9e71, 0xa8f3, 0x0001, 0xd800,
- 0xe77d, 0xf838, 0x0001, 0x8800,
- 0x7339, 0x883d, 0x0001, 0x8800,
- 0xde7d, 0x8873, 0x0001, 0x8800,
- 0xfbb1, 0xd8f6, 0x0001, 0xa800,
- 0x77bd, 0xd8ef, 0x0001, 0xa800,
- 0xbbb9, 0xd877, 0x0001, 0xa800,
- 0x0001, 0xd800, 0xffff, 0xffff};
- RAZZLE!DAZZLE
- fi # End icon.ic
- if test -f light.ic
- then
- echo shar: will not overwrite existing file "'light.ic'"
- else
- echo 'x - light.ic'
- cat << \RAZZLE!DAZZLE > light.ic
- /* @(#)light.ic X10/6.6B 12/26/86 */
- #define light_width 16
- #define light_height 16
- static short light_bits[] = {
- 0x1111, 0x0000, 0x4444, 0x0000,
- 0x1111, 0x0000, 0x4444, 0x0000,
- 0x1111, 0x0000, 0x4444, 0x0000,
- 0x1111, 0x0000, 0x4444, 0x0000};
- RAZZLE!DAZZLE
- fi # End light.ic
- if test -f ptyx.h
- then
- echo shar: will not overwrite existing file "'ptyx.h'"
- else
- echo 'x - ptyx.h'
- cat << \RAZZLE!DAZZLE > ptyx.h
- /*
- * $Source: /u1/X/xterm/RCS/ptyx.h,v $
- * $Header: ptyx.h,v 10.101 86/12/01 16:57:15 swick Rel $
- */
-
- #include <X/mit-copyright.h>
-
- /* Copyright Massachusetts Institute of Technology 1984, 1985 */
-
- /* ptyx.h */
- /* @(#)ptyx.h X10/6.6B 12/26/86 */
-
- #define FALSE 0
- #define TRUE 1
-
- #define MAX_COLS 200
- #define MAX_ROWS 128
-
- /*
- * The origin of a screen is 0, 0. Therefore, the number of rows
- * on a screen is screen->max_row + 1, and similarly for columns.
- */
-
- typedef char **ScrnBuf;
-
- /*
- * ANSI emulation.
- */
- #define INQ 0x05
- #define FF 0x0C /* C0, C1 control names */
- #define LS1 0x0E
- #define LS0 0x0F
- #define CAN 0x18
- #define SUB 0x1A
- #define ESC 0x1B
- #define US 0x1F
- #define DEL 0x7F
- #define HTS ('H'+0x40')
- #define SS2 0x8E
- #define SS3 0x8F
- #define DCS 0x90
- #define OLDID 0x9A /* ESC Z */
- #define CSI 0x9B
- #define ST 0x9C
- #define OSC 0x9D
- #define PM 0x9E
- #define APC 0x9F
- #define RDEL 0xFF
-
- #define NBOX 5 /* Number of Vertices in box */
- #define NPARAM 10 /* Max. parameters */
-
- #define MINHILITE 32
- #define TITLEPAD 4
-
- typedef struct {
- unsigned char a_type;
- unsigned char a_pintro;
- unsigned char a_final;
- unsigned char a_inters;
- char a_nparam; /* # of parameters */
- char a_dflt[NPARAM]; /* Default value flags */
- short a_param[NPARAM]; /* Parameters */
- char a_nastyf; /* Error flag */
- } ANSI;
-
- typedef struct {
- int row;
- int col;
- unsigned flags; /* Vt100 saves graphics rendition. Ugh! */
- char curgl;
- char curgr;
- char gsets[4];
- } SavedCursor;
-
- #define TEKNUMFONTS 5
- /* Actually there are 5 types of lines, but four are non-solid lines */
- #define TEKNUMLINES 4
-
- typedef struct {
- int x;
- int y;
- int fontsize;
- int linetype;
- } Tmodes;
-
- typedef struct {
- int Twidth;
- int Theight;
- } T_fontsize;
-
- typedef struct {
- Window tbar; /* major window */
- Window left; /* left hilited window */
- Window right; /* right hilited window */
- int hilited; /* in hilite state */
- int x; /* x position of title */
- int y; /* y position of title */
- int fullwidth; /* full width of title */
- int width; /* width of visible part of title */
- } TitleBar;
-
- typedef struct {
- short *bits;
- int x;
- int y;
- int width;
- int height;
- } BitmapBits;
-
- typedef struct {
- /* These parameters apply to both windows */
- Display *display; /* X display for screen */
- int respond; /* socket for responses
- (position report, etc.) */
- long pid; /* pid of process on far side */
- int uid; /* user id of actual person */
- int gid; /* group id of actual person */
- int color; /* colors used */
- int foreground; /* foreground color */
- int background; /* Background color */
- int cursorcolor; /* Cursor color */
- int mousecolor; /* Mouse color */
- Pixmap bgndtile; /* background tile pixmap */
- int border; /* inner border */
- int borderwidth; /* outer border */
- Pixmap bordertile; /* tile pixmap for border */
- Pixmap graybordertile; /* tile pixmap for border when
- window is unselected */
- Cursor arrow; /* arrow cursor */
- unsigned short send_mouse_pos; /* user wants mouse transition */
- /* and position information */
- int select; /* xterm selected */
- struct timeval *timeout; /* timeout value for select */
- FontInfo *titlefont; /* font info for title font */
- int titleheight; /* height of title */
- int title_n_size; /* width on 'n' in title font */
- Pixmap hilitetile; /* tile pixmap for title hilite */
- int autoraise; /* auto raise window mode */
- Window autowindow; /* the window to autoraise */
- int timer; /* timer function */
- int holdoff; /* delay select and unselects */
- int visualbell; /* visual bell mode */
- int icon_show; /* icon currently showing */
- int textundericon; /* text under icon */
- int bitmapwidth; /* width of icon bitmap */
- int bitmapheight; /* height of icon bitmap */
- int icon_text_x; /* x position of text */
- int icon_text_y; /* y position of text */
- BitmapBits iconbitmap; /* bitmap for icon */
- int iconinput; /* got input while iconified */
- int active_icon; /* icon is miniature copy */
- int deiconwarp; /* warp mouse on deiconify */
- int logging; /* logging mode */
- int logfd; /* file descriptor of log */
- char *logfile; /* log file name */
- char *logstart; /* current start of log buffer */
- int inhibit; /* flags for inhibiting changes */
-
- /* VT window parameters */
- int show; /* window showing */
- int iconunmap; /* unmapped because of icon */
- struct {
- Window window; /* X window id */
- int width; /* width of columns */
- int height; /* height of rows */
- int fullwidth; /* full width of window */
- int fullheight; /* full height of window */
- int f_width; /* width of fonts in pixels */
- int f_height; /* height of fonts in pixels */
- int titlebar; /* title bar(s) showing */
- } fullVwin, iconVwin, *mappedVwin;
- Font fnt_icon; /* icon font */
- int minrows; /* minimun number of rows to
- accommodate scrollbar */
- Cursor curs; /* cursor resource from X */
- /* Terminal fonts must be of the same size and of fixed width */
- Font fnt_norm; /* normal font of terminal */
- Font fnt_bold; /* bold font of terminal */
- int enbolden; /* overstrike for bold font */
- Vertex *box; /* draw unselected cursor */
-
- int cursor_state; /* ON or OFF */
- int cursor_set; /* requested state */
- int cursor_col; /* previous cursor column */
- int cursor_row; /* previous cursor row */
- int cur_col; /* current cursor column */
- int cur_row; /* current cursor row */
- int max_col; /* rightmost column */
- int max_row; /* bottom row */
- int top_marg; /* top line of scrolling region */
- int bot_marg; /* bottom line of " " */
- int scrollbar; /* if > 0, width of scrollbar, and
- scrollbar showing */
- int topline; /* line number of top, <= 0 */
- int savelines; /* number of lines off top to save */
- int scrollinput; /* scroll to bottom on input */
- int scrollkey; /* scroll to bottom on key */
-
- ScrnBuf buf; /* screen buffer (main) */
- ScrnBuf allbuf; /* screen buffer (may include
- lines scrolled off top */
- ScrnBuf altbuf; /* alternate screen buffer */
- int alternate; /* true if using alternate buf */
- ScrollBar *sb; /* pointer to scrollbar struct */
- unsigned short do_wrap; /* true if cursor in last column
- and character just output */
- int incopy; /* 0 if no RasterCopy exposure
- event processed since last
- RasterCopy */
- int c132; /* allow change to 132 columns */
- int curses; /* cludge-ups for more and vi */
- int marginbell; /* true if margin bell on */
- int nmarginbell; /* columns from right margin */
- int bellarmed; /* cursor below bell margin */
- #ifdef CROCKSCROLL
- int scrollincr; /* scroll increment */
- #endif
- unsigned int multiscroll; /* true if multi-scroll */
- int scrolls; /* outstanding scroll count */
- SavedCursor sc; /* data for restore cursor */
- TitleBar title; /* title bar */
- int statusline; /* status line showing */
- int statusheight; /* status line height */
- int instatus; /* cursor in status line */
- SavedCursor statussc; /* status line restore cursor */
- int reversestatus; /* status line reversed */
- char *winname; /* name of window (and icons) */
- int winnamelen; /* length of window name */
- int save_modes[19]; /* save dec private modes */
- int pagemode; /* true if page mode */
- int pagecnt; /* count of lines in page mode */
- int pageoverlap; /* lines to overlap (less one) */
-
- /* Improved VT100 emulation stuff. */
- char gsets[4]; /* G0 through G3. */
- char curgl; /* Current GL setting. */
- char curgr; /* Current GR setting. */
- char curss; /* Current single shift. */
- int scroll_amt; /* amount to scroll */
- int refresh_amt; /* amount to refresh */
- int jumpscroll; /* whether we should jumpscroll */
-
- /* Tektronix window parameters */
- int Tforeground; /* foreground color */
- int Tbackground; /* Background color */
- int Tcursorcolor; /* Cursor color */
- Pixmap Tbgndtile; /* background tile pixmap */
- int Tcolor; /* colors used */
- int planeused; /* is xorplane being used */
- int cellsused; /* are color cells being used */
- Color colorcells[3]; /* color cells for Tek */
- int Tshow; /* Tek window showing */
- int Ticonunmap; /* unmapped because of icon */
- int waitrefresh; /* postpone refresh */
- struct {
- Window window; /* X window id */
- int width; /* width of columns */
- int height; /* height of rows */
- int fullwidth; /* full width of window */
- int fullheight; /* full height of window */
- int titlebar; /* title bar(s) showing */
- double tekscale; /* scale factor Tek -> vs100 */
- } fullTwin, iconTwin, *mappedTwin;
- BitmapBits Ticonbitmap; /* bitmap for icon */
- Vertex **Tbox; /* draw unselected cursor */
- int xorplane; /* z plane for inverts */
- Pattern linepat[TEKNUMLINES]; /* line patterns */
- Font Tfont[TEKNUMFONTS]; /* Tek fonts */
- int tobaseline[TEKNUMFONTS]; /* top to baseline for
- each font */
- int TekEmu; /* true if Tektronix emulation */
- int cur_X; /* current x */
- int cur_Y; /* current y */
- Tmodes cur; /* current tek modes */
- Tmodes page; /* starting tek modes on page */
- int margin; /* 0 -> margin 1, 1 -> margin 2 */
- int pen; /* current Tektronix pen 0=up, 1=dn */
- char *TekGIN; /* nonzero if Tektronix GIN mode*/
- TitleBar Ttitle; /* title bar */
- char *Twinname; /* name of window */
- int Twinnamelen; /* length of window name */
- } Screen;
-
- /* meaning of bits in screen.select flag */
- #define INWINDOW 01 /* the mouse is in one of the windows */
- #define FOCUS 02 /* one of the windows is the focus window */
-
- typedef struct
- {
- unsigned offset; /* status of shift, control, meta */
- #define SHIFT 0x0001
- #define META 0x0002
- #define CONTROL 0x0004
-
- unsigned flags;
- } Keyboard;
-
- /* define masks for flags */
- #define CAPS_LOCK 0x01
- #define KYPD_APL 0x02
- #define CURSOR_APL 0x04
-
-
- #define N_MARGINBELL 10
- #define MAX_TABS 320
- #define TAB_ARRAY_SIZE 10 /* number of ints to provide MAX_TABS bits */
-
- typedef unsigned Tabs [TAB_ARRAY_SIZE];
-
-
- #define BUF_SIZE 4096
-
- typedef struct
- {
- Keyboard keyboard; /* terminal keyboard */
- Screen screen; /* terminal screeen */
- unsigned flags; /* mode flags */
- unsigned initflags; /* initial mode flags */
- Tabs tabs; /* tabstops of the terminal */
- } Terminal;
-
-
- /* masks for terminal flags */
-
- #define INVERSE 0x01 /* invert the characters to be output */
- #define UNDERLINE 0x02 /* true if underlining */
- #define BOLD 0x04
- #define WRAPAROUND 0x08
- #define REVERSE_VIDEO 0x10 /* true if screen white on black */
- #define ORIGIN 0x20 /* true if in origin mode */
- #define INSERT 0x40 /* true if in insert mode */
- #define SMOOTHSCROLL 0x80 /* true if in smooth scroll mode */
- #define AUTOREPEAT 0x100 /* true if in autorepeat mode */
- #define IN132COLUMNS 0x200 /* true if in 132 column mode */
- #define LINEFEED 0x400
- #define REVERSEWRAP 0x800 /* true if reverse wraparound mode */
- #define ICONINPUT 0x1000 /* true if mini icon accepts kbd input */
-
- #define ATTRIBUTES 0x07 /* attributes mask */
- #define CHAR 0177
-
- #define VWindow(screen) (screen->mappedVwin->window)
- #define TWindow(screen) (screen->mappedTwin->window)
- #define Width(screen) (screen->mappedVwin->width)
- #define Height(screen) (screen->mappedVwin->height)
- #define FullWidth(screen) (screen->mappedVwin->fullwidth)
- #define FullHeight(screen) (screen->mappedVwin->fullheight)
- #define FontWidth(screen) (screen->mappedVwin->f_width)
- #define FontHeight(screen) (screen->mappedVwin->f_height)
- #define TWidth(screen) (screen->mappedTwin->width)
- #define THeight(screen) (screen->mappedTwin->height)
- #define TFullWidth(screen) (screen->mappedTwin->fullwidth)
- #define TFullHeight(screen) (screen->mappedTwin->fullheight)
- #define TekScale(screen) (screen->mappedTwin->tekscale)
- #define Titlebar(screen) (screen->mappedVwin->titlebar)
- #define TTitlebar(screen) (screen->mappedTwin->titlebar)
- #define ActiveIcon(screen) (screen->active_icon && \
- (screen->mappedVwin == &screen->iconVwin))
- #define TActiveIcon(screen) (screen->active_icon && \
- (screen->mappedTwin == &screen->iconTwin))
-
- #define CursorX(screen,col) ((col) * FontWidth(screen) + screen->border)
- #define CursorY(screen,row) ((screen->instatus ? \
- ((row) * FontHeight(screen) + 1)\
- : (((row) - screen->topline) * FontHeight(screen))) +\
- screen->border + Titlebar(screen))
-
- #define TICONWINDOWEVENTS (ExposeWindow | ButtonPressed)
-
- #define ICONWINDOWEVENTS (TICONWINDOWEVENTS | ExposeRegion | ExposeCopy)
-
- #define ICONINPUTEVENTS (KeyPressed | EnterWindow | LeaveWindow | FocusChange)
-
- #define TWINDOWEVENTS (KeyPressed | ExposeWindow | ButtonPressed |\
- ButtonReleased | UnmapWindow | EnterWindow |\
- LeaveWindow | FocusChange)
-
- #define WINDOWEVENTS (TWINDOWEVENTS | ExposeRegion | ExposeCopy)
-
- #define TEK_LINK_BLOCK_SIZE 1024
-
- typedef struct Tek_Link
- {
- struct Tek_Link *next; /* pointer to next TekLink in list
- NULL <=> this is last TekLink */
- short count;
- char *ptr;
- char data [TEK_LINK_BLOCK_SIZE];
- } TekLink;
-
- /* flags for cursors */
- #define OFF 0
- #define ON 1
- #define CLEAR 0
- #define TOGGLE 1
-
- /* flags for color */
- #define C_FOREGROUND 0x01
- #define C_BACKGROUND 0x02
- #define C_FBMASK 0x03
- #define C_CURSOR 0x04
- #define C_MOUSE 0x08
- #define C_BORDER 0x10
-
- /* flags for inhibit */
- #define I_LOG 0x01
- #define I_SIGNAL 0x02
- #define I_TEK 0x04
-
- extern Bitmap make_icon();
- extern Cursor make_tcross();
- extern Cursor make_xterm();
- extern Cursor make_wait();
- extern Cursor make_arrow();
- RAZZLE!DAZZLE
- fi # End ptyx.h
- if test -f saveoff.ic
- then
- echo shar: will not overwrite existing file "'saveoff.ic'"
- else
- echo 'x - saveoff.ic'
- cat << \RAZZLE!DAZZLE > saveoff.ic
- /* @(#)saveoff.ic X10/6.6B 12/26/86 */
- #define saveoff_width 19
- #define saveoff_height 19
- static short saveoff_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x78f0, 0x0000, 0xa528, 0x0000,
- 0xb568, 0x0000, 0xbde8, 0x0000,
- 0xe538, 0x0000, 0x78f8, 0x0000,
- 0x0008, 0x0000, 0x0008, 0x0000,
- 0x0f88, 0x0000, 0x0f88, 0x0000,
- 0x0f88, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End saveoff.ic
- if test -f saveon.ic
- then
- echo shar: will not overwrite existing file "'saveon.ic'"
- else
- echo 'x - saveon.ic'
- cat << \RAZZLE!DAZZLE > saveon.ic
- /* @(#)saveon.ic X10/6.6B 12/26/86 */
- #define saveon_width 19
- #define saveon_height 19
- static short saveon_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x78f0, 0x0000, 0xa528, 0x0000,
- 0xb568, 0x0000, 0xbde8, 0x0000,
- 0xe538, 0x0000, 0xb8e8, 0x0000,
- 0x4010, 0x0000, 0x2020, 0x0000,
- 0x1fc0, 0x0000, 0x0f80, 0x0000,
- 0x0f80, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End saveon.ic
- if test -f scrollbar.h
- then
- echo shar: will not overwrite existing file "'scrollbar.h'"
- else
- echo 'x - scrollbar.h'
- cat << \RAZZLE!DAZZLE > scrollbar.h
- /*
- * $Source: /u1/X/xterm/RCS/scrollbar.h,v $
- * $Header: scrollbar.h,v 10.100 86/12/01 14:40:30 jg Rel $
- */
-
- /* @(#)scrollbar.h X10/6.6B 12/26/86 */
- #define BARSTART (2 * BUTTONHEIGHT)
- #define BUTTONHEIGHT SCROLLBARWIDTH
- #define HILITED 1
- #define MINSCROLLBARHEIGHT (BARSTART + 32)
- #define NBUTTONBITMAPS (BUTTON_NORMAL / 2 + 1)
- #define NSAVESTATES 2
- #define PAUSETIME (1000000L / 5)
- #define SAVELINES 64
- #define SCROLLBARWIDTH 20
- #define STEPTIME (1000000L / 10)
-
- /*
- * the first four must be consecutive and at the bottom
- */
- #define BUTTON_UPLINE 0
- #define BUTTON_UPLINEHI (BUTTON_UPLINE | HILITED)
- #define BUTTON_DOWNLINE (BUTTON_UPLINE + 2)
- #define BUTTON_DOWNLINEHI (BUTTON_DOWNLINE | HILITED)
- #define BUTTON_UPPAGE (BUTTON_DOWNLINE + 2)
- #define BUTTON_UPPAGEHI (BUTTON_UPPAGE | HILITED)
- #define BUTTON_DOWNPAGE (BUTTON_UPPAGE + 2)
- #define BUTTON_DOWNPAGEHI (BUTTON_DOWNPAGE | HILITED)
- #define BUTTON_TOP (BUTTON_DOWNPAGE + 2)
- #define BUTTON_TOPHI (BUTTON_TOP | HILITED)
- #define BUTTON_BOTTOM (BUTTON_TOP + 2)
- #define BUTTON_BOTTOMHI (BUTTON_BOTTOM | HILITED)
- #define BUTTON_NORMAL (BUTTON_BOTTOM + 2)
-
- #define SAVE_OFF 0
- #define SAVE_ON 1
-
- #define HIDE 1
- #define NONE 0
- #define SHOW 2
-
- #define GetButtonState(sb) (sb->buttonset)
- #define GetSaveState(sb) (sb->saveset)
- #define GetScrollBarBottom(sb) (sb->set.bottomvalue)
- #define GetScrollBarRegion(sb) (sb->set.regionheight)
- #define GetScrollBarTop(sb) (sb->set.topvalue)
- #define GetScrollBarValue(sb) (sb->set.value)
- #define SetScrollBarBottom(sb,bot) sb->set.bottomvalue = (bot)
- #define SetScrollBarRegion(sb,reg) sb->set.regionheight = (reg)
- #define SetScrollBarTop(sb,top) sb->set.topvalue = (top)
- #define SetScrollBarValue(sb,val) sb->set.value = (val)
-
- struct scroll_region {
- int value; /* value at top of region */
- int regionheight; /* region height below value */
- int topvalue; /* of scroll area */
- int bottomvalue; /* of scroll area */
- int height; /* of scroll area */
- int y; /* y position of region */
- int pixelheight; /* height in pixel of region */
- };
-
- typedef struct scroll_bar {
- int visible; /* scrollbar visible */
- int buttonstate; /* current button state */
- int buttonset; /* requested button state */
- int savestate; /* current save state */
- int saveset; /* requested save state */
- int regionvisible; /* region visible */
- int action; /* state is changing */
- Window bar; /* main scrollbar window */
- Window button; /* button window */
- Window save; /* save state window */
- Window region; /* region window */
- Cursor cursor; /* scrollbar cursor */
- short *buttonbits[NBUTTONBITMAPS]; /* button state bitmaps */
- short *savebits[NSAVESTATES]; /* save state bitmaps */
- int fg; /* foreground color */
- int bg; /* background color */
- struct scroll_region state; /* current region state */
- struct scroll_region set; /* requested region state */
- } ScrollBar;
-
- ScrollBar *CreateScrollBar();
- RAZZLE!DAZZLE
- fi # End scrollbar.h
- if test -f tek_icon.ic
- then
- echo shar: will not overwrite existing file "'tek_icon.ic'"
- else
- echo 'x - tek_icon.ic'
- cat << \RAZZLE!DAZZLE > tek_icon.ic
- /* @(#)tek_icon.ic X10/6.6B 12/26/86 */
- #define tek_icon_width 32
- #define tek_icon_height 24
- static short tek_icon_bits[] = {
- 0xffff, 0xffff, 0x5001, 0x8005,
- 0xaffd, 0xbffa, 0x5001, 0x8005,
- 0xffff, 0xffff, 0x0001, 0x8000,
- 0x0001, 0x8000, 0x0b89, 0x8000,
- 0x2009, 0x8000, 0x4019, 0x9e00,
- 0x8049, 0x8100, 0x0109, 0x8080,
- 0x0409, 0x9082, 0x3819, 0x8440,
- 0xce09, 0x8149, 0x2109, 0x805a,
- 0x8089, 0x803c, 0x0059, 0x8025,
- 0x0049, 0x8e80, 0x0009, 0x8000,
- 0x8889, 0x8888, 0xfff9, 0x9fff,
- 0x0001, 0x8000, 0xffff, 0xffff};
- RAZZLE!DAZZLE
- fi # End tek_icon.ic
- if test -f top.ic
- then
- echo shar: will not overwrite existing file "'top.ic'"
- else
- echo 'x - top.ic'
- cat << \RAZZLE!DAZZLE > top.ic
- /* @(#)top.ic X10/6.6B 12/26/86 */
- #define top_width 19
- #define top_height 19
- static short top_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0xfff8, 0x0000,
- 0xfff8, 0x0000, 0x8208, 0x0000,
- 0x8708, 0x0000, 0x8f88, 0x0000,
- 0x9fc8, 0x0000, 0x8708, 0x0000,
- 0x8708, 0x0000, 0x8008, 0x0000,
- 0x8008, 0x0000, 0x8008, 0x0000,
- 0x8008, 0x0000, 0x8008, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End top.ic
- if test -f upline.ic
- then
- echo shar: will not overwrite existing file "'upline.ic'"
- else
- echo 'x - upline.ic'
- cat << \RAZZLE!DAZZLE > upline.ic
- /* @(#)upline.ic X10/6.6B 12/26/86 */
- #define upline_width 19
- #define upline_height 19
- static short upline_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0200, 0x0000, 0x0700, 0x0000,
- 0x0f80, 0x0000, 0x1fc0, 0x0000,
- 0x0700, 0x0000, 0x0700, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xef78, 0x0000, 0x0000, 0x0000,
- 0xdbb8, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End upline.ic
- if test -f uppage.ic
- then
- echo shar: will not overwrite existing file "'uppage.ic'"
- else
- echo 'x - uppage.ic'
- cat << \RAZZLE!DAZZLE > uppage.ic
- /* @(#)uppage.ic X10/6.6B 12/26/86 */
- #define uppage_width 19
- #define uppage_height 19
- static short uppage_bits[] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x7f00, 0x0000,
- 0x4180, 0x0000, 0x4140, 0x0000,
- 0x4120, 0x0000, 0x41f0, 0x0000,
- 0x4210, 0x0000, 0x4710, 0x0000,
- 0x4f90, 0x0000, 0x5fd0, 0x0000,
- 0x4710, 0x0000, 0x4710, 0x0000,
- 0x4010, 0x0000, 0x7ff0, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000};
- RAZZLE!DAZZLE
- fi # End uppage.ic
- if test -f wait.ic
- then
- echo shar: will not overwrite existing file "'wait.ic'"
- else
- echo 'x - wait.ic'
- cat << \RAZZLE!DAZZLE > wait.ic
- /* @(#)wait.ic X10/6.6B 12/26/86 */
- #define wait_width 16
- #define wait_height 16
- #define wait_x_hot 7
- #define wait_y_hot 7
- static short wait_bits[] = {
- 0x0000, 0x03e0, 0x0c18, 0x1084,
- 0x1084, 0x2082, 0x2082, 0x2382,
- 0x2002, 0x2002, 0x1004, 0x1004,
- 0x0c18, 0x0ff8, 0x1ffc, 0x0000};
- RAZZLE!DAZZLE
- fi # End wait.ic
- if test -f waitmask.ic
- then
- echo shar: will not overwrite existing file "'waitmask.ic'"
- else
- echo 'x - waitmask.ic'
- cat << \RAZZLE!DAZZLE > waitmask.ic
- /* @(#)waitmask.ic X10/6.6B 12/26/86 */
- #define waitmask_width 16
- #define waitmask_height 16
- #define waitmask_x_hot 7
- #define waitmask_y_hot 7
- static short waitmask_bits[] = {
- 0x07f0, 0x0ff8, 0x1ffc, 0x3ffe,
- 0x7fff, 0x7fff, 0x7fff, 0x7fff,
- 0x7fff, 0x7fff, 0x7fff, 0x3ffe,
- 0x1ffc, 0x3ffe, 0x3ffe, 0x3ffe};
- RAZZLE!DAZZLE
- fi # End waitmask.ic
- echo '***** End of' xterm 6.6B - Part 1 of 7 '*****'
- exit
-
-